package com.speedchina.permission.domain.sys.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.speedchina.framework.base.TEntity;
import com.speedchina.framework.validator.group.AddGroup;
import com.speedchina.framework.validator.group.UpdateGroup;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NonNull;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

/**
 *  实体类
 * @author winter
 * @date 2021-04-07 15:19:42
 */
@Data
@TableName("t_sys_resource")
public class Resource extends TEntity<Resource> {
    /**
     * ID主键
     */
    
    @ApiModelProperty(value = "ID主键")
    @TableId
    @NotNull(groups = {UpdateGroup.class})
    private String id;
    /**
     * 父ID
     */
    
    @ApiModelProperty(value = "父ID")
    @NotNull(groups = {UpdateGroup.class,AddGroup.class})
    private String parentId;
    /**
     * 资源名称（菜单名称、按钮名称）
     */
    
    @ApiModelProperty(value = "资源名称（菜单名称、按钮名称）")
    @NotNull(groups = {AddGroup.class})
    private String name;
    /**
     * 图标
     */
    
    @ApiModelProperty(value = "图标")
    private String icon;
    /**
     * 链接地址
     */
    
    @ApiModelProperty(value = "组件路径(如VUE场景)")
    private String component;
    /**
     * 组件路径(如VUE场景)
     */
    
    @ApiModelProperty(value = "链接/路由 地址")
    private String path;
    /**
     * 0 不隐藏， 1 隐藏
     */
    
    @ApiModelProperty(value = "0 不隐藏， 1 隐藏")
    private String hide;
    /**
     * 权限标识
     */
    
    @ApiModelProperty(value = "权限标识")
    private String permission;
    /**
     * 排序序号
     */
    
    @ApiModelProperty(value = "排序序号")
    private Integer sort;
    /**
     * 资源类型 1: 菜单，2：按钮
     */
    
    @ApiModelProperty(value = "资源类型 1: 菜单，2：按钮")
    @NotNull(groups = {AddGroup.class})
    private String type;
    /**
     * 资源状态 1：可用，0：禁用
     */
    
    @ApiModelProperty(value = "资源状态 1：可用，0：禁用")
    private String status;

     public Resource(){
     }

}
